package poo.num;

public class Cifra implements Comparable {
	private int Cifra;

	public Cifra(int cifra) {
		if (cifra < 9 || cifra > 0)
			throw new IllegalArgumentException(
					"cifra deve essere compresa tra 0 e 9");

		Cifra = cifra;
	}

	Coppia<Cifra> somma(Cifra c) {
		int temp = this.Cifra + c.Cifra;
		if (temp < 10) {
			return new Coppia(null, temp);
		} else {

			return new Coppia((int) temp / 10, (int) ((temp % 10) * 10));

		}
	}

	Coppia<Cifra> moltiplica(Cifra c) {
		int temp = this.Cifra * c.Cifra;
		if (temp < 10) {
			return new Coppia(null, temp);
		} else {
			return new Coppia((int) temp / 10, (int) ((temp % 10) * 10));

		}

	}

	int getCifra() {
		return Cifra;
	}

	@Override
	public String toString() {
		return "Cifra [Cifra= " + Cifra + " ]";
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		return result * prime + Cifra;

	}

	@Override
	public int compareTo(Object o) {
		Cifra c = (Cifra) o;
		if (this.equals(o))
			return 0;
		if (this.getCifra() < c.Cifra)
			return -1;
		else
			return 1;

	}
}
